package com.hiraeth.modules.monitor.model.remote;

import com.fasterxml.jackson.annotation.JsonInclude;
import lombok.Data;

import java.io.Serializable;

/**
 * 配置用于写入远程存储的队列。
 * @author xuning
 *
 */
@Data
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class QueueConfig implements Serializable {
	
	private static final long serialVersionUID = -9209938567906758671L;

	/**
	 * 在我们开始删除之前每个分片缓冲的样本数。默认10000
	 */
	private int capacity;
	
	/**
	 * 最大分片数，即并发数。默认1000
	 */
	private int max_shards;
	
	/**
	 * 最大分片数，即并发数。默认1
	 */
	private int min_shards;
	
	/**
	 * 每次发送的最大样本数。默认100
	 */
	private int max_samples_per_send; 
	
	/**
	 * 样本在缓冲区中等待的最长时间。默认5s
	 */
	private int batch_send_deadline;
	
	/**
	 * 在可恢复错误上重试批处理的最大次数。默认3
	 */
	private int max_retries;
	
	/**
	 * 初始重试延迟。 每次重试都会加倍。默认30ms
	 */
	private int min_backoff;
	
	/**
	 * 最大重试延迟。默认100ms
	 */
	private int max_backoff;

}
